package br.com.sistema.web.mb.permissao;

import java.util.List;

import br.com.framework.client.negocio.factory.FacadeFactory;
import br.com.framework.client.permissao.entidade.Usuario;
import br.com.framework.client.web.Paginador;
import br.com.framework.client.web.TipoOrdenacaoPaginador;
import br.com.sistema.negocio.facade.permissao.IFacadeUsuario;

public class UsuarioPaginador extends Paginador<String, Usuario> {

	private static final long serialVersionUID = 1472603786458828653L;

	private List<Usuario> usuarios;
	private Usuario usuario;

	private TipoOrdenacaoPaginador typeOrder;

	public UsuarioPaginador(FacadeFactory facadeFactory, Usuario usuario, TipoOrdenacaoPaginador typeOrder) {
		super(facadeFactory);
		this.usuario = usuario;
		this.typeOrder = typeOrder;
	}

	@Override
	public List<Usuario> consultar(int primeiraLinha, int numeroDeLinhas, String orderBy, boolean descendente) {
		return consultar(primeiraLinha, numeroDeLinhas);
	}

	private List<Usuario> consultar(int primeiraLinha, int numeroDeLinhas) {
		usuarios = facadeFactory.getFacade(IFacadeUsuario.class).buscar(usuario, typeOrder, primeiraLinha, numeroDeLinhas);
		return usuarios;
	}

	@Override
	public String getChavePrimaria(Usuario usuario) {
		return usuario.getId() + "";
	}

	@Override
	public String getDefaultOrderBy() {
		return null;
	}

	@Override
	public int getTotalLinhas() {
		return facadeFactory.getFacade(IFacadeUsuario.class).buscarTotal(usuario);
	}

	@Override
	public Usuario pesquisarPorChavePrimaria(String pk) {
		return null;
	}

	public List<Usuario> getUsuarios() {
		return usuarios;
	}

	public void setUsuarios(List<Usuario> usuarios) {
		this.usuarios = usuarios;
	}

}
